#ifndef _SHAPELOADER_H_
#define _SHAPELOADER_H_
#include <SEMath/Shape.h>
#include <vector>
#include <memory>

namespace SEngine
{
    class ShapeLoader
    {
    public:
        virtual ~ShapeLoader() = default;
        void AddVertex(glm::vec3 vertex) { m_vertices.emplace_back(vertex); }
        template<typename T>
        std::unique_ptr<T> Create() { auto out = CreateImpl<T>(); m_vertices.clear(); return out; }
        template<typename T>
        std::unique_ptr<T> CreateImpl();
    private:
        std::vector<glm::vec3> m_vertices;
    };
} // namespace SEngine



#endif